1. Technical Field
The present invention relates in general to a system and method of command routing and delivering between a sender with an invoker and a recipient with a receiver and in particular to a system and method of using a next hop(s) for routing and delivering a command between a sender with an invoker and a recipient with a receiver.
2. Description of the Related Art
Computer commands are vital to communications from one system to another system. Computer commands are typically routed and delivered from a sender with an invoker and a recipient with a receiver. Typically, one system may ask another system based on a desired command to perform some process or do some work, and this one system will expect a response from the other system. A number of processes must be performed and executed in order to reach the desired command. Computer commands may involve various requests, such as administrative software requests, disk drive space request, memory request, etc.
For example, FIG. 1 shows an invoker 10 that is able to route to one of the desired commands 20 (i.e. commands A, B, C, D, E, or F) via routers 15 (i.e. Router 1 (R1), Router 2 (R2), Router 3 (R3), Router 4 (R4)). Referring to FIG. 2, routings from Router 1 (R1) to various destinations 22 are shown. In order for R1 to route to another destination 22, a mapping or specific path 24 must be defined. FIG. 2 shows explicit mappings 24 from R1 to the other destinations 22 (R2, R3, R4, A, B, C, D, E, and F) based on the configuration shown in FIG. 1. In other words, the specific path 24 must be explicitly mapped out in order for routing to occur. As one example, in order for a desired command to route from R1 to command E, the explicit mapping and specific path 24 must exist. Referring to FIGS. 1 and 2, the explicit mapping 24 from R1 to command E is defined as R1 to R2 to R4 to E.
FIG. 3 shows another example in which routings from R2 to various destinations 23 are defined. FIG. 3 shows explicit mappings 24 from R2 to the other destinations 23 (R1, R3, R4, A, B, C, D, E, and F) based on the configuration shown in FIG. 1. In order for R2 to route to another destination 23, a mapping or specific path 24 must be defined. In other words, the specific path 24 must be explicitly mapped out in order for routing to be able to occur. As one example, in order for a desired command to route from R2 to command C, the explicit mapping and specific path 24 must exist. Referring to FIGS. 1 and 3, the explicit mapping 24 from R2 to command C is defined as R2 to R1 to R3 to C.
The problem is that if such an explicit mapping or specific path 24 does not exist, then routing of a command between the two respective locations cannot at all occur. Therefore, routing and delivery of commands is extremely dependent on the explicit mapping and specific path 24. Furthermore, providing an explicit mapping or specific path from one location to another location for a command may be extremely cumbersome and/or impractical. The amount of accurate information that would need to be stored and maintained may be overwhelming. As shown in FIGS. 2 and 3, some of the explicit mapping routes are very short while others are or can get very long and large scaled. The processing of these explicit mapping routes 24 may also be slow and require a significant amount of data that needs to be configured at execution or runtime to provide the routing information. Also, the invoker needs to know the entire mapping or path in order to route the command.
It is therefore advantageous and desirable to provide a system and method of routing and delivering commands from a sender with an invoker to a recipient with a receiver that provide a more simplistic and scalable solution in handling the routing and delivery. It is also advantageous and desirable to provide a system and method of routing and delivering commands that provide efficient routing and delivery and that use minimal data during execution and runtime in providing the routing information. It is further advantageous and desirable to provide a system and method of routing and delivering commands that avoid having to use explicit mapping or specific paths and overcome the cumbersome and impractical nature of explicit mapping or specific paths. It is also advantageous and desirable to provide a system and method of routing and delivering commands that minimize the amount of routing information that needs to be stored and maintained. It is still further advantageous and desirable to provide a system and method of routing and delivering commands in which the invoker does not have to know the entire mapping or routing path.
It is therefore one object of the present invention to provide a system and method of routing and delivering commands from a sender with an invoker to a recipient with a receiver that provide a more simplistic and scalable solution in handling the routing and delivery.
It is another object of the present invention to provide a system and method of routing and delivering commands that provide efficient routing and delivery and that use minimal data during execution and runtime in providing the routing information.
It is a further object of the present invention to provide a system and method of routing and delivering commands that avoid having to use explicit mapping or specific paths and overcome the cumbersome and impractical nature of explicit mapping or specific paths.
It is still another object of the present invention to provide a system and method of routing and delivering, commands that minimize the amount of routing information that needs to be stored and maintained.
It is still a further object of the present invention to provide a system and method of routing and delivering commands in which the invoker does not have to know the entire mapping or routing path.
The foregoing objects are achieved as is now described. A system and method of handling and routing a desired command between a sender with a coupled invoker and a recipient with a coupled receiver that uses and implements a next hop technique. A router object is provided with a hierarchical tree of routers. At least one router destination table is provided for the hierarchical tree of routers. A destination address of the desired command is examined. The desired command is moved and routed to a next hop location based on the at least one router destination table and the destination address. The system and method determines whether the desired command has reached the destination address that is a final destination address. The desired command is delivered from the invoker to the receiver when the destination address that is the final desired destination has been reached. The next hop technique involves the determinations of at least one departure router from which the desired command is to be routed and at least one arrival router to which the desired command is to be routed. A next hop is determined and set up in the at least one router destination table for each of the at least one arrival router. The system and method determines whether the next hop is the final desired destination. The next hop is used as one of the at least one departure router until the final desired destination has been reached by the desired command.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.